#include "partition.h"
#include "buffermap.h"



void test_piece(int piece, char * file_source, char * file_dest, int bytes_read, char * buffer){
	printf("Extraction de la piece n%d du fichier source %s\n", piece, file_source);
	bytes_read = split_file(file_source, piece, buffer);
	
	printf("Ecriture de la piece n%d du fichier source %s dans le fichier destination %s\n", piece, file_source, file_dest);
	recompose_file(file_dest, piece, buffer, bytes_read);
}

int main(){
	int saisie;

	printf("...TESTING PARTITION FILE MODULE....\n");
	int piece = 0;
	char * file_source = "images.jpg";//"test_split";
	char * file_dest = "result.jpg";//"test_split2";
	char * buffer = malloc(PIECE_SIZE*sizeof(char));
	
	int file_src_size = taille_fichier(file_source);
	//printf("Le fichier %s peut être divisé en %d \n", file_dest, ceil(file_src_size*1.0/PIECE_SIZE));
	printf("Initilisation du fichier de reception %s de taille %d \n", file_dest, file_src_size);
	init_file(file_dest, file_src_size);
	
	printf("Extraction de la piece n%d du fichier source %s\n", piece, file_source);
	int bytes_read = split_file(file_source, piece, buffer);
	printf("Ecriture de la piece n%d du fichier source %s dans le fichier destination %s\n", piece, file_source, file_dest);
	recompose_file(file_dest, piece, buffer, bytes_read);
	
	piece = 1;
	printf("Extraction de la piece n%d du fichier source %s\n", piece, file_source);
	bytes_read = split_file(file_source, piece, buffer);
	printf("Ecriture de la piece n%d du fichier source %s dans le fichier destination %s\n", piece, file_source, file_dest);
	recompose_file(file_dest, piece, buffer, bytes_read);

	test_piece(2, file_source, file_dest, bytes_read, buffer);
	test_piece(3, file_source, file_dest, bytes_read, buffer);
	test_piece(4, file_source, file_dest, bytes_read, buffer);

	free(buffer);
	
	
	
	
	
	printf("PRESS 0 TO PROCEED : ");
	scanf("%d", &saisie);
	if (saisie != 0)
		return;

	system("clear");
	printf("...TESTING BUFFERMAP MODULE....\n");
	int decimal = 21;
	int file_size = 2048*10;
	//on s'attend à un buffer de taille 10
	buffermap buffermap = create_buffermap(decimal, file_size);
	print_buffermap(buffermap);
	MAJ__buffermap(buffermap, 0);
	print_buffermap(buffermap);

	
	
	return EXIT_SUCCESS;	
}
